package com.dts.gateway.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * （自定义类描述）
 *
 * @author zhoujh
 * @date 2022/06/01 14:48
 */
@Configuration
public class GateWayConfig {
    /**
     * <p>将 "ip:${server.port}+${route.path}" 转发到 "${route.url}"</p>
     * <p>例 "120.0.0.1:9527/s" 转发到 "https://www.baidu.com/s"</p><br>
     * <p>可以尝试访问以下链接获取配置效果</p>
     * <li>"http://localhost:9527/s"</li>
     * <li>"http://localhost:9527/s?wd=spring"</li>
     * <br>
     * <div>
     * <b>routes().route(参数1，参数2).route(参数1，参数2)……</b>
     * <li>参数1：id，一个可以随便取得名字，标识此路由规则</li>
     * <li>参数2：具体的路由规则内容</li>
     *
     * <b>路由规则：</b>
     * <li>path: 网关服务地址之后的内容（比如上面的"/s")</li>
     * <li>uri: 符合path之后需要转发到的位置</li>
     * </div>
     *
     * @param builder
     * @return
     */
    @Bean
    public RouteLocator routes(RouteLocatorBuilder builder) {
        return builder
                .routes()
                .route("gateway_route_1",
                        r -> r.path("/s")
                                .uri("https://www.baidu.com/s")
                )
                .build();
    }
}
